package com.sunbim.rsrv.service;

import com.sunbim.rsrv.params.relics.RiskUpdateParams;
import com.sunbim.rsrv.pojo.Relics;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunbim.rsrv.vo.relics.RelicsWithRiskVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author yuhui
 * @since 2021-12-30
 */
public interface RelicsService extends IService<Relics> {

    /**
     * 查询全部文物数据
     *
     * @return 文物数据列表
     */
    List<Map<String, Object>> getAll();

    /**
     * 根据用户id查询该用户的带有风险信息的文物数据
     *
     * @param userId 用户id
     * @return 文物数据列表
     */
    List<Map<String, Object>> getAllByUserIdWithDanger(Integer userId);

    /**
     * 插入一条文物数据
     *
     * @param relics 文物数据
     * @param file   封面图片
     */
    void insertOne(Relics relics, MultipartFile file);

    /**
     * 根据文物id更新数据
     *
     * @param relics Relics
     */
    void updateByRelicsId(Relics relics);

    /**
     * 根据文物id删除文物数据
     *
     * @param id 文物id
     */
    void deleteRelics(int id);

    /**
     * 根据文物id删除文物数据
     *
     * @param ids 文物id列表
     */
    void deleteRelics(List<Integer> ids);

    Relics selectOne(int relicsId);

    Relics selectOne(int loginIdAsInt, int relicsId);

    List<Map<String, Object>> selectGradeByUserId(Integer userId);

    List<Map<String, Object>> selectRegionByUserId(Integer userId);

    List<Map<String, Object>> selectTypeByUserId(Integer userId);

    List<Map<String, Object>> selectByUserIdWithCondition(Integer userId, String condition);

    List<Relics> getAllByUserId(int userId);

    RelicsWithRiskVo selectRiskOne(Integer userId, Integer relicsId);

    void updateRisk(RiskUpdateParams params);

    List<Map<String, Object>> searchByRelicsName( );

    List<Map<String, Object>> searchByRelicsName(int loginIdAsInt);
}
